/*
题目描述
给定 L 和 R  (0 ≤ L ≤ R ≤ 3×10^8)，问 [L , R] 中的自然数满足下述条件的数有多少个。

条件：数字的任意相邻两位差值都恰好为 1 ，且数字至少有两位。

输入格式
第一行输入一个整数 T，表示有 T 组输入。

接下来 T 行，每行输入两个整数 L 和 R。

输出格式
输出 T 行，每行一个整数表示对应测试用例的答案。

输入样例
2
1 10
1 100
输出样例
1
17
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAX_R = 300000000;
vector<int> steppingNumbers;

void generateSteppingNumbers() {
    queue<long long> q;
    for (int i = 1; i <= 9; i++) q.push(i);

    while (!q.empty()) {
        long long num = q.front();
        q.pop();

        if (num >= 10) steppingNumbers.push_back((int)num);

        int lastDigit = num % 10;

        if (num * 10 + (lastDigit - 1) <= MAX_R && lastDigit > 0) {
            q.push(num * 10 + (lastDigit - 1));
        }
        if (num * 10 + (lastDigit + 1) <= MAX_R && lastDigit < 9) {
            q.push(num * 10 + (lastDigit + 1));
        }
    }

    sort(steppingNumbers.begin(), steppingNumbers.end());
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    generateSteppingNumbers();

    int T;
    cin >> T;
    while (T--) {
        int L, R;
        cin >> L >> R;
        auto it1 = lower_bound(steppingNumbers.begin(), steppingNumbers.end(), L);
        auto it2 = upper_bound(steppingNumbers.begin(), steppingNumbers.end(), R);
        cout << (it2 - it1) << "\n";
    }
    return 0;
}
